const {readFileSync, writeFileSync} = require('fs')
const path = require('path')
const jwt = require('jsonwebtoken')

module.exports = {
    // 注册
    register(ctx) {
        // console.log(ctx.request.body);
        const {username, password} = ctx.request.body
        let userData = readFileSync(path.join(__dirname, '../', '../', 'database', 'user.json'), 'utf-8')
        if (!userData) {
            // 没读取到内容
            userData = []
        } else {
            // 读取到内容了
            userData = JSON.parse(userData)
        }
        // 判断用户名是否存在
        let user = userData.find(item => item.username === username)
        if (user) {
            ctx.body = {
                code: 1,
                msg: '用户名已经存在！'
            }
            return
        }
        userData.push({
            username,
            password
        })
        writeFileSync(path.join(__dirname, '../', '../', 'database', 'user.json'), JSON.stringify(userData))
        ctx.body = {
            code: 0,
            msg: '注册成功！'
        }
    },
    login(ctx) {
        const {username, password} = ctx.request.body
        let userData = readFileSync(path.join(__dirname, '../', '../', 'database', 'user.json'), 'utf-8')
        if (userData) {
            // 读取到内容了
            // 转成数组
            userData = JSON.parse(userData)
            // 找是否有这个用户名和密码
            const user = userData.find(item => item.username === username && item.password === password)
            // 判断是否存在
            if (user) {
                // 登录成功 
                ctx.body = {
                    code: 0,
                    msg: '登录成功！',
                    data: {
                        username: username,
                        token: jwt.sign({
                            username: username,
                            startTime: +new Date(),
                            expires: 7200 * 1000
                        }, 'ajsdfnkljasdfRTRGEq8w347859q3')
                    }
                }
            } else {
                // 没找到
                ctx.body = {
                    code: 1,
                    msg: '账号或密码错误！'
                }
            }
        } else {
            // 没有读取到
            ctx.body = {
                code: 1,
                msg: '账号或密码错误！'
            }
        }
    }
}